package com.cyy.test_t_4_;

import java.util.Stack;

/**
 * 剑指Offer 面试题42
 * 翻转单词顺序列；
 * 题目描述:
 * 牛客最近来了一个新员工Fish，每天早晨总是会拿着一本英文杂志，
 * 写些句子在本子上。同事Cat对Fish写的内容颇感兴趣，有一天他向
 * Fish借来翻看，但却读不懂它的意思。例如，“student. a am I”。
 * 后来才意识到，这家伙原来把句子单词的顺序翻转了，正确的句子应
 * 该是“I am a student.”。
 * Cat对一一的翻转这些单词顺序可不在行，你能帮助他么？
 * */

public class t_42_2 {

	public static void main(String[] args) {
		String str = "I am a student!  ";
		
		System.out.println(ReverseSentence(str));
	
	}
	
	public static String ReverseSentence(String str) {
		
		if(str.trim().equals("")){
            return str;
        }
		
		String sub = "";
		
		if(str == " ") sub = " ";
		
		//按空格分割字符串，存入数组
		String [] set = str.split(" ");
		
		Stack<String> result = new Stack<String>();
		
		for(int i = 0; i < set.length; i ++){
			result.push(set[i]);
			//没到数组最后都添加空格
			if(i != set.length - 1){
				result.push(" ");
			}
		}
		while(!result.empty()){
			sub += result.pop();
		}
		
		return sub;
    }

}
